package com.coolingme.general;

/**
 * 抽象装饰器,继承被装饰组件
 *
 * @author wangyue
 * @date 2020-09-15 22:43
 */
public abstract class Decorator extends Component {

    /**
     * 持有组件对象
     */
    protected Component component;

    /**
     * 构造方法，让子类强制传入
     *
     * @param component
     */
    public Decorator(Component component) {
        this.component = component;
    }

    /**
     * 转发请求给组件对象，可以在转发前后增加一些操作
     */
    @Override
    public void operation() {
        component.operation();
    }

}
